約 4,098,168 件
https://w.atwiki.jp/hama170628/pages/37.html
test_tableの内容をCSVで表示し保存する。 set echo off set heading off set termout off set pause off set pagesize 0 set linesize 300 set feedback 80 set colsep , spool c \temp\test.log select * from test_table order by aaa,bbb; spool off
https://w.atwiki.jp/fe_matome/pages/46.html
CSV_Iクラス: CSVファイルを読み込むクラス。 store_strで一行ずつデータを読み込む。 変数の型変換などは、呼び出し元のプログラムに任せる。 素朴な処理(一文字ずつ処理してる)なので、処理が重いかも。 文字列ストリーム処理をすべき? /************************* CSV_I.h *************************/ #include stdio.h #include string.h #ifndef _CSV_I_H_#define _CSV_I_H_ class CSV_I{ typedef char buftype[64] ; FILE* ifp;//出力するCSVのファイルポインタint row, col;static const int FGETS_SIZE = 512; public CSV_I(){ifp = NULL;}bool open_csv(const char* filename);//引数で与えたファイル名のCSVをオープンするbool store_str(char L, char R, buftype buf_ary[]);//L列からR列までの要素をbuf_ary[]に格納する~CSV_I(); private }; #endif //_CSV_I_H_ /************************* CSV_I.cpp *************************/#include "CSV_I.h" //引数で与えたファイル名のCSVをオープンするbool CSV_I open_csv(const char* filename){if(ifp){fclose(ifp);}if(!(ifp = fopen(filename, "r+"))){return false;} return true;} //L列からR列までの要素をbuf_ary[]に格納するbool CSV_I store_str(char L, char R, buftype buf_ary[]){char line_buf[FGETS_SIZE];int s = L - A ;//引数の列名を整数型に変換int t = R - A ; if(L R){//引数エラーreturn false;}if(!fgets(line_buf, FGETS_SIZE, ifp)){return false;}memset(buf_ary, \0 , sizeof(buftype)*(R-L+1));//fprintf(stderr, "%s", line_buf);for(int i=0, j=0; i t; i++){//i コンマごとのカウンタ。j 文字ごとのカウンタfor(int k=0; line_buf[j] != , ; k++){if(i s){//L列より左の要素は切り捨てるj++;}else{buf_ary[i-s][k] = line_buf[j];//fprintf(stderr, "%c", line_buf[j]);j++;}}j++;//コンマ分インクリメント}} CSV_I ~CSV_I(){if(ifp){fclose(ifp);}} /***** 利用例 ***** #include "csv_i.h" #define CSV_FILE "C \\tex\\temp.csv" #define LCOL A #define RCOL G int main (){ CSV_I ci; typedef char buftype[64]; buftype buf_ary[RCOL-LCOL+1]; ci.open_csv(CSV_FILE);for(int i=0; ci.store_str(LCOL, RCOL, buf_ary); i++){for(int j=0; j RCOL-LCOL+1; j++){fprintf(stderr, "%s, ", buf_ary[j]);}putchar( \n );} return 0;} *************/ 累計のアクセス数: - 今日のアクセス数: - 昨日のアクセス数 -
https://w.atwiki.jp/shoyofilms/pages/26.html
html head style body{ display flex; margin 0; } nav.csv_list{ min-width 170px; padding 10px; overflow auto; border-right 1px solid #000; } nav.csv_list ul{ list-style none; padding 0; } section.data{ overflow auto; padding 0 5px; } table { border 1px solid #000; } th, td{ border 1px solid #000; padding 0; } th input{ font-weight bold; } td input{ display inline; } nav.control{ margin-bottom 20px; /*display block;*/ } /style /head body nav class="csv_list" h2 CSV一覧 /h2 ul ?php $files = glob('*.csv'); foreach ($files as $key = $value) { echo " li a href='?open=".$value."' ".$value . ' /a /li '; } ? /nav section class="data" ?php if(isset($_REQUEST["open"]) file_get_contents($_REQUEST["open"])){ $file_name = $_REQUEST["open"]; $file = null; #データべースのファイルポインタ $is_indexed=false; $row; $column_name = []; $column_id=0; $row_num=0; echo " h2 {$file_name} /h2 nav class='control' button id='apply' 反映 /button button id='addleft' disabled 左に追加 /button button id='addright' disabled 右に追加 /button button id='addup' disabled 上に行追加 /button button id='deleterow' disabled 行削除 /button button id='adddown' disabled 下に行追加 /button /nav table id='data_table' "; if(file_exists($file_name)){ $file=fopen($file_name,"r"); while($row = fgetcsv($file)){ #データベースの列名変数を設定 if($is_indexed===false){ echo " tr td /td "; foreach($row as $r= $i){ ${"r_".$i} = $r; array_push($column_name,$i); echo " th input type='text' value='".$i."' id='h".$r."' class='select_column' /th "; } echo " /tr "; $column_num = $r+1; $is_indexed=true; }else{ echo " tr td class='select_row' id='r".$row_num."' 選 /td "; foreach($column_name as $c= $i){ $column_id = ${"r_".$i}; echo " td input type='text' value='".$row[$column_id]."' id='c".$row_num." ".($c+1)."' /td "; } echo " /tr "; } $row_num++; } echo " /table "; } } ? /section script const row_num= ?php echo $row_num; ? ; const column_num= ?php echo $column_num; ? ; let selected_row=""; let selected_column=""; button_addleft = document.getElementById("addleft"); button_addright = document.getElementById("addright"); button_addup = document.getElementById("addup"); button_deleterow = document.getElementById("deleterow"); button_adddown = document.getElementById("adddown"); data_table = document.getElementById("data_table"); button_addup.addEventListener("click", function() { const add_pos = parseInt(selected_row.substr(1)); var p = data_table.children[0].children; var q = data_table.children[0].children[1].cloneNode(true); console.log(q); data_table.children[0].children[add_pos].before(q); }); button_deleterow.addEventListener("click", function() { const del_pos = parseInt(selected_row.substr(1)); var aa = data_table.deleteRow(del_pos); console.log(del_pos, aa); }); button_adddown.addEventListener("click", function() { const add_pos = parseInt(selected_row.substr(1)); var p = data_table.children[0].children; var q = data_table.children[0].children[1].cloneNode(true); data_table.children[0].children[add_pos].after(q); }); button_addleft.addEventListener("click", function() { const add_pos = parseInt(selected_column.substr(1)); var aa = data_table.deleteRow( 1 ); console.log(add_pos, aa); }); function select_reset(){ var p = data_table.children[0].children; for(i=0; i p.length; i++){ p[i].children[0].style.backgroundColor = "#fff"; } for(i=0; i columns.length; i++){ columns[i].style.backgroundColor = "#fff"; } button_addleft.setAttribute("disabled",""); button_addright.setAttribute("disabled",""); button_addup.setAttribute("disabled",""); button_deleterow.setAttribute("disabled",""); button_adddown.setAttribute("disabled",""); } const rows = document.getElementsByClassName("select_row"); const trs = document.getElementsByTagName("tr"); for(i=0; i rows.length; i++){ rows[i].addEventListener("click", function() { select_reset(); this.style.backgroundColor = "#ff0"; tr_list = [].slice.call(trs); selected_row=tr_list.indexOf(this.parentNode); button_addup.removeAttribute("disabled"); button_deleterow.removeAttribute("disabled"); button_adddown.removeAttribute("disabled"); }); } const columns = document.getElementsByClassName("select_column"); const ths = document.getElementsByTagName("th"); for(i=0; i columns.length; i++){ columns[i].addEventListener("click", function() { select_reset(); this.style.backgroundColor = "#ff0"; th_list = [].slice.call(ths); selected_row=th_list.indexOf(this.parentNode); selected_column=this.id; button_addleft.removeAttribute("disabled"); button_addright.removeAttribute("disabled"); }); } document.getElementById("apply").addEventListener("click", function() { let csvtext = ""; for(c=0; c column_num; c++){ csvtext += document.getElementById("h"+c).value+","; } csvtext+="\r\n"; var p = data_table.children[0].children; for(i=1; i p.length; i++){ for(j=1; j p[i].children.length; j++){ csvtext += p[i].children[j].children[0].value +","; } csvtext+="\r\n"; } ////////////////////CSV形式へ変換//////////////////// // BOMを付与(Excelで開いた際のの文字化け対策) const bom = new Uint8Array([0xef, 0xbb, 0xbf]); // CSV用バイナリデータを作成 const blob = new Blob([bom, csvtext], { type "text/csv" }); // blobからオブジェクトURLを作成 const objectUrl = URL.createObjectURL(blob); ////////////////////ダウンロードリンクの作成とクリック//////////////////// // ダウンロードリンクを作成 ※HTMLのaタグを作成 const downloadLink = document.createElement("a"); // ファイル名の設定 const fileName = "sample.csv"; downloadLink.download = fileName; // ダウンロードファイルを設定 ※aタグのhref属性 downloadLink.href = objectUrl; // ダウンロードリンクを擬似的にクリック downloadLink.click(); // ダウンロードリンクを削除 downloadLink.remove(); }); /script /body /html
https://w.atwiki.jp/karino2/pages/46.html
WebTobin向けに経済統計を集めてcsvとして公開しています。 https //docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdEE4YnJ3dERMclRqazV0ZjJuN0k0UWc single=true gid=0 output=html 現時点ではタイトル以外は数値のみ対応していて、欠損値は...で表します。 文字列は必要になったら足します。 ここにあるurlを使って、例えば df - read.csv("https //docs.google.com/spreadsheet/pub?key=0AnKwf3jHs-oIdGVESWc4OGs2cVJxYVFLaTFZNHhOLVE single=true gid=0 output=csv") などとすると実質GDPのデータフレームが取れます。 人口統計 公開手順 主に以下のサイトの手順に従っています。 http //blog.revolutionanalytics.com/2009/09/how-to-use-a-google-spreadsheet-as-data-in-r.html google spreadsheetで適当にデータを整形する File- Webに公開 ドキュメント全体をSheet1に ウェブページをcsvに 生成されるURLをコピペ 以前のやり方(そのうち消す事) File- Share- Sheet 1を選び、Start Publishを押す 下のWeb PageをCSVに変更 URLをコピペして公開 最近の更新 2012/07/09 授業者規模別非農林業雇用者数 追加。 2012/07/08 実質GDPを速報値に変更。誤っていたTable Of Contentsを更新。 CPIを暦年ではなく年度別に変更(GDPとあってる方が使いやすいので) 名目GDPを追加(検算の為) 17年基準の実質GDPを追加(最新データが欲しい場合はこちら。接続注意) 人口統計に2010年分を追加。 自営業者の数を調べる為に地位別就業者数を追加。
https://w.atwiki.jp/erayasai/pages/139.html
eraシリーズにおいて、CSVを使うことは避けられないがそのときの注意点を理解している範囲で記してみる。なお実際にこうなるかどうかはしっかりと各自検証してもらいたいし、間違いなどの指摘や修正および増補などは大歓迎する。eramakerおよびEmuera対象でEmueraの場合は最新私家版を一応の基準としている。eramaker2は仕組みが違うので対象外である。 eraにおけるCSVファイルはテキストファイルである eramakerにおける注意点ラストをしっかり改行する。 小数の数値の取り扱い TALENTに関しては内部に数値を放り込めない。 MARK(刻印),JUEL(宝珠)はChara**.CSVで設定できない。 文字定義ができない 基礎や能力や経験や相性などの数値を省略したら0と解釈する。 Train.csvにおける上限はCOM定義次第 Emueraにおける注意点小数の数値の取り扱い RELATIONにおいて文字定義ができない 基礎や能力や経験や相性などの数値を省略したら1と解釈する。 Train.csvにおける下限は0上限は999がデフォルト eraにおけるCSVファイルはテキストファイルである eramaker(Emuera)においてのCSVファイルの中身はコンマで区切られたテキストファイルに他ならない。よって編集するときはEXCELなどの表計算ソフトを使うよりはサクラエディタなどのテキスト編集ソフトを使ってもらいたい。そうでないと、余計な区切りや整形をしてしまってeramaker(Emuera)側が読み込めないCSVになってしまうこともありうる。 eramakerにおける注意点 ラストをしっかり改行する。 CSVファイルにおいても最終行はしっかり改行してほしい。改行されていない行はeramakerは読み込まないのでなかったものとして扱われるのであるから。 小数の数値の取り扱い eramakerにおいては、小数の数値は整数に丸めて解釈される。すなわち、 0.1,ばか というCSVがある場合、これは0が「ばか」であるということである。0.1が「ばか」ということではもちろんないので注意すること。 TALENTに関しては内部に数値を放り込めない。 eramakerにおいて、Chara**.CSVによる設定を行うときに以下の通りにすると、 素質,1,2 これは、このキャラが最初にADDCHARAされたときのTALENT 1には[1]が代入された状態となる。つまり、上のCSVにおける「2」は無視されてしまうのに注意すること。 MARK(刻印),JUEL(宝珠)はChara**.CSVで設定できない。 eramakerにおいては、Chara**.CSVにより初期刻印や初期宝珠の設定をおこなうことはできないことに注意すること。 文字定義ができない eramakerにおいては文字による定義をChara**.CSVで使うのは不可能である。すなわち、 素質,処女 能力,殺人技能,2 経験,臨死経験,5 刻印,天災刻印,1 という感じでの文字による定義はeramakerは理解できない。 基礎や能力や経験や相性などの数値を省略したら0と解釈する。 eramakerにおいては、必要な数値を省略した場合はそれを0と解釈する。たとえば、 基礎,0 能力,1 経験,2 相性,1 とした場合には、BASE 0もABL 1もTALENT 2もRELATION このキャラ 1もみんな「0」として解釈することに注意すること。 Train.csvにおける上限はCOM定義次第 eramakerにおいて調教コマンドとなるべきTrain.csvにおける番号の定義に999より大きな値を使ってもいい。ただし対応するCOM***関数が定義されていること。本当の上限は数値変数の上限である。 一方、負の値を設定しても動作するし、調教においては表示もされるがこちらはそこでその調教を選んでも何もしないことに注意。COM***関数の存在とは関係なくである。 Emueraにおける注意点 小数の数値の取り扱い Emueraにおいては、小数の数値がある行は無視される。すなわち、 0.1,ばか というCSVがある場合、Emueraではなにも定義しない。 RELATIONにおいて文字定義ができない Emueraにおいては通常、文字による定義がChara**.CSVにおいても可能である。すなわち、 素質,処女 能力,殺人技能,2 経験,臨死経験,5 刻印,天災刻印,1 という感じで文字による定義が可能である(もちろん、それぞれ Talent.CSVやAbl.CSVやExp.CSVやMark.CSVなどで定義しないといけない) ところが、RELATIONにかんしては、そういうことができない。つまり、 相性,霊夢,120 という表記は無理である。これは、NOとCharaの名前の対応をEmueraが読み込む前にChara**.CSVを読み込んでいるからである。 基礎や能力や経験や相性などの数値を省略したら1と解釈する。 Emueraにおいては、必要な数値を省略した場合はそれを1と解釈する。たとえば、 基礎,0 能力,1 経験,2 相性,1 とした場合には、BASE 0もABL 1もTALENT 2もRELATION このキャラ 1もみんな「1」として解釈することに注意すること。 Train.csvにおける下限は0上限は999がデフォルト Emueraにおいて調教コマンドとなるべきTrain.csvにおける番号の定義の範囲は通常0~999までである。ただし、VariableSize.csvにより上限を変更することができる。一方下限は0であり負の値は使用できない。
https://w.atwiki.jp/lmes2/pages/27.html
CSVデータの読み込み CSVファイルを用意します。 ここでは以下のデータをCドライブの直下に「nengajo.csv」という名前で保存して使用します。 (「勤務先住所 1」は半角スペースを含んでいるので注意) 氏名(姓),氏名(名),敬称,勤務先郵便番号,会社名,部署名,役職,勤務先住所 1,勤務先電話番号 ウォルフガング,ミッターマイヤー,様,444-4444,銀河帝国,宇宙艦隊,総司令官,北海道小樽市カムイコタン6-3,06-6666-6666 「はがき作家 あてな」を起動します。 [ファイル] - [外部データ] - [CSVファイルの読み込み] not found (39.jpg) [読み込むCSVファイル名]にさきほど作ったCSVファイルを指定 - [次へ] not found (40.jpg) 本来ここで、列の対応を調整するのだが、テストデータは最初から列名を一致させてあるので[完了]を押す。 not found (41.jpg) 以下のダイアログが出れば完了。 not found (42.jpg) この時点で既に住所録には登録されているのだが、画面上に表示されない。 確認したい場合、なんらかの方法で再読み込みを発生させればよいのだが、ここでは一例として[先頭]を押す。 not found (43.jpg) 「氏名」がデータ通り表示される。キャプチャーしていないが、他の項目も確認することができる。 not found (44.jpg)
https://w.atwiki.jp/mizcremorne/pages/245.html
llList2CSV string llList2CSV(list src) リスト型変数srcの中身をCSV形式の文字列にして返す。 CSVとはComma Separated Valuesの略で、Excel好きな方にはお馴染みのアレである。 つまりリストに格納された値をカンマ区切りの文字列に変換する関数である。 ["a","b","c","d"] → "a,b,c,d" [1,2,4,8] → "1,2,4,8" [ 1,2,3 , 4,5,6 , 7,8,9 ]→" 1,2,3 , 4,5,6 , 7,8,9 " この関数によってCSVに変換した文字列を再びリスト型に展開するにはllCSV2Listを使う。 また、要素の区切りをカンマ(,)以外にしたい場合はllDumpList2String関数を使うと良い。 名前 コメント
https://w.atwiki.jp/lslwiki/pages/200.html
llList2CSV string llList2CSV(list src) 機能概略 サンプル Tips 詳細な説明 History 来客数: - 選択肢 投票 役に立った (0) 役立たずだった (0) 名前 コメント
https://w.atwiki.jp/atachi/pages/66.html
CSVパーサにはCodeProjectのA Fast CSV Readerを使用しています。 通常、CSV形式と呼ばれる書式ではフィールドの型に関する情報が含まれないため、DataTableのスキーマ作成ではフィールド名のみ与えてフィールドの型は設定していません。(厳密でない型付けされたDataTableの作成) DataTable table = new DataTable(); using( CsvReader csv = new CsvReader( new StreamReader(@"c \data.csv"), true)){ foreach(string fieldName in csv.GetFieldHeaders() ) { table.Columns.Add(fieldName); } int fieldCount = csv.FieldCount; while(csv.ReadNextRecord()) { object[] datas = new object[fieldCount]; for(int i=0;i fieldCount;i++) { datas[i] = csv[i]; } table.Rows.Add(datas); } }
https://w.atwiki.jp/n2ranking/pages/18.html
titles.csv は、シリーズ集計の要である「シリーズ判別キーワード」やシリーズの名称などの情報が記載されています。 これらの項目を書き換えることで、ニコニコ歴史戦略ゲーのみならず、あらゆるジャンルのシリーズ物動画集計が可能…… になればいいなと思っています。 配置場所 データフォルダに置いてください。 書式 先頭が「 」で始まっている行はコメントとして扱われます。 各行は、TABで区切った10列で構成されています。一般的にCSVファイルはカンマ区切り(Comma Separated Valuesだし)なので、それにも対応しています。 ちなみに実行犯は、Cassava Editorというフリーソフトを「標準区切り文字:\t」「全てのセルを で囲まない」という設定で使っています。 ・各列説明 1列目:ナンバー シリーズに通し番号をつけます。同じ番号が重複すると、複数のキーワードでヒットした物がすべてそのナンバーの付けられたシリーズに含まれると判断されます。 また、同じナンバーの複数の行があった場合、より後ろに記載された情報(ゲーム名など)が利用されます。 なお、このナンバーが行の順に並ぶ必要はありません。 2列目:ゲーム名 「信長の野望・革新」など、ゲーム名を記載します。PUKは略しています。 言い訳…「信長の野望・革新PUK」という項目を作っていないのは、チラ見でゲームを判断している場合に判断が難しかったからです。 3列目:登録キャラ どんなキャラクタを登録したかを記載しています。チェックをしていないor分からなかったものは、「?」と記載、登録キャラが居ない動画は「登録なし」と記載しています。 この列は作品タイトルを適度に略して、30文字程度までに収めないと、ランキング動画内でレイアウトが崩れたりしてしまいます。 この部分関しては、まとめWikiに記載があるかどうかで必要労力が100倍は違います(笑) 4列目:シリーズタイトル そのシリーズの呼び名です。正式なシリーズ名があるものはそれを記載しますが、シリーズ名が分からないものはまとめWikiの記載などを参考にしています。 5列目:シリーズ判別ワード 各動画のタイトルを取得した際、その動画がどのシリーズに属するのかをこのキーワードで判別します。 全角と半角、大文字と小文字など、文字コードが異なる物は全て別の文字として扱われます。 よくある漏れパターン:「関 羽」というキーワードで「関 羽」が漏れる、「AAR」というキーワードで「AAR」が漏れる、「~ 顔 ~」と「~顔~」のような空白の有り無し、外伝で少しタイトルが違う、など。 また、上の行にあるシリーズ判別ワードから順に当てはめて検索しますので、広く当てはまってしまうキーワードの指定は出来るだけ後ろの行に置く必要があります。 例:「~東方の章~を新武将で」より上の行に「~東方の章~」があると、全て上の条件で拾われて、「~東方の章~を新武将で」の動画も「~東方の章~」に含まれます。 6列目:シリーズロックタグ シリーズであるタグが決まってロックされる(シリーズ名など)がある場合、それをここに記載すると、シリーズ判別ワード以外にタグも利用してシリーズ判別を行います。 7列目:mylist ランキング動画内で表示しようかと思い記載してありますが、今のところ集計には使用していません。 シリーズ判別の正誤確認をする際にマイリストと照らし合わせながらチェックをするなどで使用しています。 8列目:備考 ここに「除外」という単語が入ると、ランキング作成時にそのシリーズは含めません。 現時点( 09/3/15)では、「ニコニコ歴史戦略ゲー シリーズランキング」が除外されています。 また、ごったニ!の際にニコニコ歴史戦略ゲーとアイマス架空戦記を別々に集計するという案もあったために、この欄に架空戦記と記載してあるものも多数あります。 9列目:開始期 どの時期に開始したシリーズかを記載します。つい最近拡張された項目なため、まだほとんど記載されていません。 この欄には2通りの記載方法があり、一つは「2009年02月」というような半角数字で年・月を記載するテキスト方式、もう一つは 09/2なら21(年間ランキングの分類で 07/3-6を1、それ以降を数字を増やして 09/2では21)と記載する方式ですが、分かりにくいので順次置き換え予定です。 10列目:閉じ xでも顔でも何でも良いのですが、この列がないとcsv編集ソフトによっては行によって列数がまちまちになって処理に支障をきたしたりというケースがあるもので。 内容を処理に使っていませんので、メモにも使えます。 ダウンロード titles.zip( 09/2 集計時点)